Skip to content

chore(deps): align website deps with Dependabot + add TS 6/7 split#152

Merged
GeekTrainer merged 4 commits into
mainfrom
geektrainer/dependabot-alignment
Jul 15, 2026
Merged

chore(deps): align website deps with Dependabot + add TS 6/7 split#152
GeekTrainer merged 4 commits into
mainfrom
geektrainer/dependabot-alignment

Conversation

@GeekTrainer

@GeekTrainer GeekTrainer commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

Aligns the website/ Astro + Starlight dependencies with the versions Dependabot proposed, and sets up a TypeScript 6/7 split so the site keeps a working type-checker while still exercising the TS 7 toolchain. Supersedes Dependabot PRs #147 (typescript), #148 (astro), #149 (starlight), and #150 (sharp).

Dependency bumps:

  • astro 5.16 → 7.0.9
  • @astrojs/starlight 0.37 → 0.41.3 (peers astro@^7, so it must move together with Astro)
  • sharp 0.34 → 0.35.3
  • @astrojs/check 0.9.4 → 0.9.9
  • typescript 5.7 → 6.0.3 (held on 6.x — see below)

TypeScript 6/7 split

@astrojs/check (our only type-checker) peers typescript@^5 || ^6 and does not support TypeScript 7 yet, so bumping the project typescript straight to 7 breaks type-checking. Instead:

  • typescript stays on ^6.0.3 for astro check (npm run check).
  • @typescript/native-preview (tsgo) is added as a dev dependency for the TS 7 path (npm run check:tsgo, config in tsconfig.tsgo.json).
  • npm run check:all runs both.
  • Dependabot is told to ignore the typescript major bump until @astrojs/check supports TS 7 (so chore(deps): Bump typescript from 5.9.3 to 7.0.2 in /website #147 stops recurring).

CI

  • pages.yml Node bumped 20 → 22 (Astro 7 requires node >=22.12).
  • Added a type-check step running npm run check:all before the build, so the split is enforced in the build gate.

Type of change

  • Repo housekeeping (CI, dependabot, README, license)
  • Site shell (website/ Astro + Starlight wrapper)

Verification

  • cd website && rm -rf dist && npm run build succeeds — 218 HTML incl. 404, 217 excluding
  • npm run check:all — astro check (TS 6): 0 errors; tsgo (TS 7): 0 errors
  • Lychee offline link check: 0 errors (14029 OK)
  • Page-count invariant: 36 source routes, 217 built pages

Note

Local installs need npm install --min-release-age=0 because of a corp npmrc release-age guard on brand-new versions; CI on the public registry does not. Nothing about that flag is committed — the lockfile pins the resolved versions (including tsgo's linux-x64 binary for the runner).

Notes for reviewers

  • The TS 7 side is intentionally lightweight: this is a docs site with no tsc build step, so tsgo effectively checks content.config.ts. The split exists so TS 7 is tracked and runnable, and so the typescript dep can advance to 7 in one step once @astrojs/check supports it.

GeekTrainer and others added 3 commits July 15, 2026 14:06
Bump the workshop site dependencies to the versions Dependabot proposed,
superseding the individual bump PRs:

- astro 5.16 -> 7.0.9
- @astrojs/starlight 0.37 -> 0.41.3 (peers astro ^7, moves with astro)
- sharp 0.34 -> 0.35.3
- @astrojs/check 0.9.4 -> 0.9.9
- typescript 5.7 -> 6.0.3

TypeScript is held on the 6.x line because @astrojs/check (our type-checker)
peers `typescript@^5 || ^6` and does not yet support TypeScript 7. To still
exercise the TS 7 toolchain, add a split: `@typescript/native-preview` (tsgo)
as a dev dependency, a dedicated `tsconfig.tsgo.json`, and `check:tsgo` /
`check:all` scripts. `npm run check` runs astro check (TS 6); `check:tsgo`
runs tsgo (TS 7); `check:all` runs both.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 64357866-3a3f-4fd8-914b-77826de5be5a
Astro 7 requires Node >=22.12, so bump setup-node from 20 to 22. Add a
type-check step that runs `npm run check:all` (astro check on TS 6 plus tsgo
on TS 7) before the build so the split config is enforced in CI.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 64357866-3a3f-4fd8-914b-77826de5be5a
typescript must stay on 6.x for @astrojs/check, so tell Dependabot to stop
re-proposing the TS 5->7 major update. The TS 7 path is tracked separately via
@typescript/native-preview. Remove this ignore once @astrojs/check supports TS 7.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 64357866-3a3f-4fd8-914b-77826de5be5a
Copilot AI review requested due to automatic review settings July 15, 2026 21:06

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the website/ Astro + Starlight publishing wrapper to newer Dependabot-proposed versions and introduces a dual type-check approach: keep astro check working on TypeScript 6 while also running tsgo (TypeScript 7 toolchain) in CI to track forward compatibility.

Changes:

  • Bump astro, @astrojs/starlight, sharp, @astrojs/check, and keep typescript on ^6.0.3 while adding @typescript/native-preview + check:tsgo / check:all.
  • Add website/tsconfig.tsgo.json to drive the TS 7 (tsgo) check.
  • Update Pages workflow to use Node 22 and run npm run check:all before building; configure Dependabot to ignore TypeScript major bumps.
Show a summary per file
File Description
website/tsconfig.tsgo.json Adds a dedicated tsgo/TS7 config extending the main tsconfig with noEmit.
website/package.json Aligns dependencies to Astro 7/Starlight 0.41 and introduces check:tsgo + check:all scripts plus @typescript/native-preview.
.github/workflows/pages.yml Bumps CI Node major to 22 and enforces both TS6 + TS7 checks before the build.
.github/dependabot.yml Ignores TypeScript major updates to prevent recurring TS7 PRs until @astrojs/check supports it.

Review details

  • Files reviewed: 4/5 changed files
  • Comments generated: 1
  • Review effort level: Low

Comment on lines 31 to 33
with:
node-version: '20'
node-version: '22'
cache: 'npm'

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch on the determinism angle. Switched to node-version: 'lts/*' in 776894c, which always resolves to the current LTS (>=22.12) and self-maintains across future LTS releases — matching the Node setup shown in the cloud workshop lesson.

Pinning only the major (`22`) can, in principle, resolve to a 22.x below
Astro 7's required 22.12.0. `lts/*` always resolves to the current LTS
(>=22.12) and self-maintains across future LTS releases, matching the Node
setup shown in the cloud workshop lesson.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 64357866-3a3f-4fd8-914b-77826de5be5a
@GeekTrainer GeekTrainer merged commit 2c454e8 into main Jul 15, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants